/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Sueca;

/**
 *
 * @author Carolina
 */
public class Rodada {

    private Carta[] cartasRodada;
    private Carta vencedor;

    public Rodada() {
        cartasRodada = new Carta[4];
        vencedor = new Carta();
    }

    //armazena no array as cartas jogadas na mesa em uma rodada
    public void mesaRodada(Carta crt, Integer ordem){
       cartasRodada[ordem] = crt;     
    }

    public void setCartasRodada(Carta cartaJogada, int ordem){
        cartasRodada[ordem] = cartaJogada;
    }

    public Carta[] getCartasRodada(){
        return cartasRodada;
    }

    public Carta getCarta(int ordem){
        return cartasRodada[ordem];
    }

    //retorna carta vencedora da rodada
    //se as outras cartas da rodada ou a própria rodada não tiverem pontos ou se a primeira carta for o maior trunfo,
    //retorna a primeira carta puxada
    //se existirem cartas com mesma pontuação testa por naipe.
    public Carta vencedorRodada(Carta trunfo){

        vencedor = cartasRodada[0];
        
        String[] Valores = new String[10];

        Valores[0] = ("dois");
        Valores[1] = ("tres");
        Valores[2] = ("quatro");
        Valores[3] = ("cinco");
        Valores[4] = ("seis");
        Valores[5] = ("sete");
        Valores[6] = ("valete");
        Valores[7] = ("dama");
        Valores[8] = ("rei");
        Valores[9] = ("as");

        String naipe_trunfo;
        naipe_trunfo = new String();
        naipe_trunfo = trunfo.GetNaipe();

        boolean tem_trunfo;

        if (vencedor.GetNaipe().equals(naipe_trunfo))
            tem_trunfo=true;
        else
            tem_trunfo=false;

        for (int i=1; i<4; i++){
            if(cartasRodada[i].GetNaipe().equals(naipe_trunfo)){
                if (tem_trunfo){
                    if(cartasRodada[i].GetPonto()>vencedor.GetPonto())
                        vencedor=cartasRodada[i];
                }else{
                        tem_trunfo = true;
                        vencedor = cartasRodada[i];
                    }
            }
        }

        if (!tem_trunfo)
        {
        for (int i=1; i<4; i++)
            {
            if (cartasRodada[i].GetPonto()>0)
                {
                if (cartasRodada[i].GetPonto()>vencedor.GetPonto() && cartasRodada[i].GetNaipe().equals(cartasRodada[0].GetNaipe()))
                    vencedor = cartasRodada[i];
                }
            }
        }
        return vencedor;
    }

}
